﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _3._3._6_单例模式
{
    public class Singleton
    {
        private static Singleton s_instance;        
        private int _state;
        //方式一、方法
        //private Singleton(int state) 
        //{ 
        //    _state = state;
        //}

        //方式二、Lambada表达式
        private Singleton(int state)=> _state = state;
        public static Singleton Instance{
            get => s_instance ?? (s_instance = new Singleton(42));
        }

        // 提供一个公共方法来执行一些操作，可能会用到 _state
        public void PerformOperation()
        {
            // 使用 _state 进行某些操作
            // 例如：打印状态或执行基于状态的逻辑
            Console.WriteLine("Current state is: " + _state);
        }

        // 提供一个公共属性来获取 _state 的值
        public int State
        {
            get { return _state; }
        }

        // 如果需要，可以提供一个方法来修改 _state 的值
        public void UpdateState(int newState)
        {
            // 可以添加逻辑来验证新状态
            _state = newState;
        }
    }
}
